package co.edu.udea.iw.ws;

import java.util.ArrayList;
import java.util.List;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import co.edu.udea.iw.dao.DispositivoDAO;
import co.edu.udea.iw.dto.Dispositivo;
import co.edu.udea.iw.dto.DispositivoWS;
import co.edu.udea.iw.exception.IWDaoException;

/**
 * Clase cuyo objetivo es realizar los servicios web para Dispositivo
 * 
 * @author Santiago Ruiz
 * @author Bladimir Velez
 *
 */
@Component
@Path("Dispositivo")
public class ServicioWebDispositivo {

	@Autowired
	private DispositivoDAO dispositivoDAO;

	/**
	 * Servicio que retorna los dispositivos disponibles.
	 * 
	 * @return List<DispositivoWS>
	 */
	@Produces(MediaType.APPLICATION_JSON)
	@GET
	@Path("DispositivosDisponibles")
	public List<DispositivoWS> consultarDispositivosDisponibles() {
		List<DispositivoWS> dispositives = new ArrayList<DispositivoWS>();
		try {
			List<Dispositivo> dispositivos = dispositivoDAO
					.obtenerDispositivos();
			for (Dispositivo d : dispositivos) {
				dispositives.add(new DispositivoWS(d.getIdDispositivo(), d
						.getNombreDispositivo(), d.getDescripcionDispositivo(),
						d.getCantidad(), d.getDisponibles(), d
								.getTipoDispositivo()));
			}
		} catch (IWDaoException e) {

			Logger log = Logger.getLogger(Exception.class);
			log.error("Error obteniendo los datos");
		}

		return dispositives;
	}

}
